import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'controllers/settings_controller.dart';
import 'widgets/settings_header.dart';
import 'widgets/settings_section.dart';
import 'widgets/settings_item.dart';
import 'widgets/settings_toggle_item.dart';
import 'widgets/settings_version_footer.dart';
import '../../theme/theme_provider.dart';
// import 'package:tijarat/screens/customers_screen.dart'; // بۇ فايل تۈرىمىزدە يوق، ھازىرچە ئۆچۈرۈۋېتىلدى

class SettingsScreen extends StatelessWidget {
  const SettingsScreen({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    final themeProvider = Provider.of<ThemeProvider>(context);
    
    return ChangeNotifierProvider(
      create: (_) => SettingsController(themeProvider: themeProvider),
      child: Consumer<SettingsController>(
        builder: (context, controller, _) {
          return Directionality(
            textDirection: TextDirection.rtl,
            child: Scaffold(
              appBar: AppBar(
                title: const Text(
                  'تەڭشەكلەر',
                  style: TextStyle(
                    color: Color(0xFFFF8C00),
                    fontWeight: FontWeight.bold,
                    fontSize: 20,
                    shadows: [
                      Shadow(
                        offset: Offset(1.0, 1.0),
                        blurRadius: 3.0,
                        color: Color.fromARGB(150, 0, 0, 0),
                      ),
                    ],
                  ),
                ),
                backgroundColor: const Color(0xFF3F5491),
                centerTitle: true,
                leading: IconButton(
                  icon: const Icon(Icons.arrow_back),
                  onPressed: () => Navigator.of(context).pop(),
                ),
              ),
              body: Container(
                decoration: BoxDecoration(
                  gradient: LinearGradient(
                    begin: Alignment.topCenter,
                    end: Alignment.bottomCenter,
                    colors: [
                      Colors.grey.shade100,
                      Colors.white,
                    ],
                  ),
                ),
                child: SingleChildScrollView(
                  padding: const EdgeInsets.all(16),
                  child: Column(
                    crossAxisAlignment: CrossAxisAlignment.start,
                    children: [
                      const SettingsHeader(),
                      
                      // كۆرۈنۈش تەڭشەكلىرى
                      SettingsSection(
                        title: 'كۆرۈنۈش تەڭشەكلىرى',
                        animationDelay: 0.3,
                        children: [
                          SettingsToggleItem(
                            icon: Icons.dark_mode,
                            iconColor: Colors.indigo,
                            title: 'قاراڭغۇ ھالەت',
                            subtitle: 'قاراڭغۇ ھالەت ئىشلىتىش',
                            value: controller.isDarkMode,
                            onChanged: (value) => controller.toggleDarkMode(),
                          ),
                          SettingsItem(
                            icon: Icons.font_download,
                            iconColor: Colors.purple,
                            title: 'خەت چوڭلۇقى',
                            subtitle: 'خەت چوڭلۇقىنى تەڭشەش',
                            onTap: () {
                              // خەت چوڭلۇقى تەڭشەش دىئالوگىنى ئېچىش
                              showDialog(
                                context: context,
                                builder: (context) => AlertDialog(
                                  title: const Text('خەت چوڭلۇقى'),
                                  content: Slider(
                                    value: controller.textSize,
                                    min: 12.0,
                                    max: 20.0,
                                    divisions: 4,
                                    label: controller.textSize.toString(),
                                    onChanged: (value) => controller.setTextSize(value),
                                  ),
                                  actions: [
                                    TextButton(
                                      onPressed: () => Navigator.pop(context),
                                      child: const Text('تامام'),
                                    ),
                                  ],
                                ),
                              );
                            },
                          ),
                        ],
                      ),
                      
                      // تىل ۋە رايون تەڭشەكلىرى
                      SettingsSection(
                        title: 'تىل ۋە رايون تەڭشەكلىرى',
                        animationDelay: 0.6,
                        children: [
                          SettingsItem(
                            icon: Icons.language,
                            iconColor: Colors.green,
                            title: 'تىل',
                            subtitle: controller.language,
                            onTap: () {
                              // تىل تاللاش دىئالوگىنى ئېچىش
                              showDialog(
                                context: context,
                                builder: (context) => SimpleDialog(
                                  title: const Text('تىل تاللاش'),
                                  children: [
                                    ListTile(
                                      title: const Text('ئۇيغۇرچە'),
                                      trailing: controller.language == 'ئۇيغۇرچە' ? const Icon(Icons.check) : null,
                                      onTap: () {
                                        controller.setLanguage('ئۇيغۇرچە');
                                        Navigator.pop(context);
                                      },
                                    ),
                                    ListTile(
                                      title: const Text('خەنزۇچە'),
                                      trailing: controller.language == 'خەنزۇچە' ? const Icon(Icons.check) : null,
                                      onTap: () {
                                        controller.setLanguage('خەنزۇچە');
                                        Navigator.pop(context);
                                      },
                                    ),
                                    ListTile(
                                      title: const Text('ئىنگلىزچە'),
                                      trailing: controller.language == 'ئىنگلىزچە' ? const Icon(Icons.check) : null,
                                      onTap: () {
                                        controller.setLanguage('ئىنگلىزچە');
                                        Navigator.pop(context);
                                      },
                                    ),
                                  ],
                                ),
                              );
                            },
                          ),
                          SettingsItem(
                            icon: Icons.attach_money,
                            iconColor: Colors.amber,
                            title: 'پۇل بىرلىكى',
                            subtitle: controller.currency,
                            onTap: () {
                              // پۇل بىرلىكى تاللاش دىئالوگىنى ئېچىش
                              showDialog(
                                context: context,
                                builder: (context) => SimpleDialog(
                                  title: const Text('پۇل بىرلىكى تاللاش'),
                                  children: [
                                    ListTile(
                                      title: const Text('CNY ¥'),
                                      trailing: controller.currency == 'CNY ¥' ? const Icon(Icons.check) : null,
                                      onTap: () {
                                        controller.setCurrency('CNY ¥');
                                        Navigator.pop(context);
                                      },
                                    ),
                                    ListTile(
                                      title: const Text('USD \$'),
                                      trailing: controller.currency == 'USD \$' ? const Icon(Icons.check) : null,
                                      onTap: () {
                                        controller.setCurrency('USD \$');
                                        Navigator.pop(context);
                                      },
                                    ),
                                    ListTile(
                                      title: const Text('EUR €'),
                                      trailing: controller.currency == 'EUR €' ? const Icon(Icons.check) : null,
                                      onTap: () {
                                        controller.setCurrency('EUR €');
                                        Navigator.pop(context);
                                      },
                                    ),
                                  ],
                                ),
                              );
                            },
                          ),
                        ],
                      ),
                      
                      // سىستېما تەڭشەكلىرى
                      SettingsSection(
                        title: 'سىستېما تەڭشەكلىرى',
                        animationDelay: 0.9,
                        children: [
                          SettingsToggleItem(
                            icon: Icons.notifications,
                            iconColor: Colors.red,
                            title: 'ئۇقتۇرۇشلار',
                            subtitle: 'دېتال ئۇقتۇرۇشلىرىنى قوزغىتىش',
                            value: controller.isNotificationEnabled,
                            onChanged: (value) => controller.toggleNotifications(),
                          ),
                          SettingsToggleItem(
                            icon: Icons.backup,
                            iconColor: Colors.blue,
                            title: 'ئاپتوماتىك زاپاسلاش',
                            subtitle: 'سانلىق مەلۇماتلارنى ئاپتوماتىك زاپاسلاش',
                            value: controller.isAutoBackupEnabled,
                            onChanged: (value) => controller.toggleAutoBackup(),
                          ),
                          SettingsItem(
                            icon: Icons.security,
                            iconColor: Colors.teal,
                            title: 'بىخەتەرلىك',
                            subtitle: 'پارول ۋە بىخەتەرلىك تەڭشەكلىرى',
                            onTap: () {
                              // بىخەتەرلىك بېتىنى ئېچىش
                              ScaffoldMessenger.of(context).showSnackBar(
                                const SnackBar(
                                  content: Text('بىخەتەرلىك بېتى ھازىرچە تەييارلانمىدى'),
                                ),
                              );
                            },
                          ),
                          SettingsItem(
                            icon: Icons.delete_sweep,
                            iconColor: Colors.red.shade700,
                            title: 'سانلىق مەلۇماتلارنى تازىلاش',
                            subtitle: 'سانلىق مەلۇماتلارنى تازىلاش (دىققەت: بۇ مەڭگۈلۈك)',
                            onTap: () {
                              // سانلىق مەلۇماتلارنى تازىلاش دىئالوگىنى ئېچىش
                              showDialog(
                                context: context,
                                builder: (context) => AlertDialog(
                                  title: const Text('سانلىق مەلۇماتلارنى تازىلاش'),
                                  content: const Text('بارلىق سانلىق مەلۇماتلارنى تازىلاش ئىستەمسىز؟ بۇنى قىلسىڭىز سىستېمىدىكى ئۇچۇرلار مەڭگۈلۈك يوقايدۇ.'),
                                  actions: [
                                    TextButton(
                                      onPressed: () => Navigator.pop(context),
                                      child: const Text('قايتىش'),
                                    ),
                                    TextButton(
                                      onPressed: () {
                                        Navigator.pop(context);
                                        ScaffoldMessenger.of(context).showSnackBar(
                                          const SnackBar(
                                            content: Text('سانلىق مەلۇماتلار تازىلاندى'),
                                          ),
                                        );
                                      },
                                      style: ButtonStyle(
                                        foregroundColor: MaterialStateProperty.all(Colors.red),
                                      ),
                                      child: const Text('تازىلاش'),
                                    ),
                                  ],
                                ),
                              );
                            },
                          ),
                          SettingsItem(
                            icon: Icons.restore,
                            iconColor: Colors.orange,
                            title: 'تەڭشەكلەرنى دەسلەپكى ھالەتكە قايتۇرۇش',
                            subtitle: 'بارلىق تەڭشەكلەرنى دەسلەپكى ھالىتىگە قايتۇرۇش',
                            onTap: () {
                              // دەسلەپكى ھالەتكە قايتۇرۇش دىئالوگىنى ئېچىش
                              showDialog(
                                context: context,
                                builder: (context) => AlertDialog(
                                  title: const Text('دەسلەپكى ھالەتكە قايتۇرۇش'),
                                  content: const Text('بارلىق تەڭشەكلەرنى دەسلەپكى ھالىتىگە قايتۇرۇش؟'),
                                  actions: [
                                    TextButton(
                                      onPressed: () => Navigator.pop(context),
                                      child: const Text('قايتىش'),
                                    ),
                                    TextButton(
                                      onPressed: () async {
                                        await controller.resetToDefaults();
                                        Navigator.pop(context);
                                        ScaffoldMessenger.of(context).showSnackBar(
                                          const SnackBar(
                                            content: Text('تەڭشەكلەر دەسلەپكى ھالىتىگە قايتۇرۇلدى'),
                                          ),
                                        );
                                      },
                                      style: ButtonStyle(
                                        foregroundColor: MaterialStateProperty.all(Colors.orange),
                                      ),
                                      child: const Text('قايتۇرۇش'),
                                    ),
                                  ],
                                ),
                              );
                            },
                          ),
                        ],
                      ),
                      
                      // دېتال ھەققىدە مەلۇمات
                      SettingsVersionFooter(
                        version: controller.version,
                        buildNumber: controller.buildNumber,
                      ),
                    ],
                  ),
                ),
              ),
            ),
          );
        },
      ),
    );
  }
}
